#version 330 // 选择GLSL版本

layout(location = 0) in vec4 in_PosL;		// 模型空间顶点
layout(location = 1) in vec2 in_TexCoord;	// 顶点纹理坐标
layout(location = 2) in vec3 in_NormalL;	// 模型空间顶点法线

uniform mat4 World; // 世界变换矩阵
uniform mat4 MVP; 	// 齐次变换矩阵

out vec3 ex_PosW; 		// 输出世界空间顶点坐标
out vec3 ex_NormalW; 	// 输出世界空间顶点法线
out vec2 ex_TexCoord;	// 输出顶点纹理坐标

void main(void)
{
	gl_Position = MVP * in_PosL;
	ex_PosW = (World * in_PosL).xyz;
	ex_NormalW = mat3(World) * in_NormalL;
	ex_TexCoord = in_TexCoord;
}
